package com.zkzx.wlhy.adaptor.controller.order.param;

import io.swagger.annotations.ApiModel;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.util.List;

/**
 * @author young Email:yanghui@zkraising.com
 * @description
 * @company 北京中科智兴物联科技有限公司 @版权所有
 * @since 2021年05月19日 16时58分
 */
@Builder
@Data
@AllArgsConstructor
@NoArgsConstructor
@ApiModel(value = "OrderDTO", description = "网货运单信息入参")
public class OrderDTO implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 企业id
     */
    private String companyId;
    /**
     * 统一社会信用代码
     */
    private String creditCode;
    /**
     * 运单号
     */
    private String waybillNum;
    /**
     * 创建时间
     */
    private String createTime;
    /**
     * 运输合同
     */
    private String carriageContractId;
    /**
     * 企业合同
     */
    private String companyContractId;
    /**
     * 运费
     */
    private String totalFreight;
    /**
     * 轨迹信息 JSON格式的字符串 [{"latitude":40.787713,"longitude":111.538798}{"latitude":40.787656,"longitude":111.53865}]
     */
    private String navigation;
    /**
     * 司机Id
     */
    private String driverId;
    /**
     * 司机身份证号
     */
    private String idCard;
    /**
     * 车辆id
     */
    private String carId;
    /**
     * 车牌号
     */
    private String plateNumber;
    /**
     * 货物信息类
     */
    private List<PushOrder> pushOrders;

    @Builder
    @Data
    public static class PushOrder implements Serializable {
        /**
         * 货物名称
         */
        private String goodsName;
        /**
         * 货物重量
         */
        private String goodsWeight;
        /**
         * 货物包装
         */
        private String goodsPackage;
        /**
         * 货物品类
         */
        private String goodsCategory;
        /**
         * 押运单
         */
        private String escortPicture;
        /**
         * 装货照片
         */
        private String loadingPicture;
        /**
         * 签收单
         */
        private String signPicture;
        /**
         * 卸货照片
         */
        private String unloadingPicture;
        /**
         * 装货时间
         */
        private String loadingPictureTime;
        /**
         * 签收时间
         */
        private String completeSignTime;
        /**
         * 发货方信息类
         */
        private OrderDelivery consigner;
        /**
         * 收货方信息类
         */
        private OrderDelivery receiving;

    }

    @Builder
    @Data
    public static class OrderDelivery implements Serializable {
        /**
         * 名称（企业/个人）
         */
        private String companyName;
        /**
         * 发货人姓名
         */
        private String name;
        /**
         * 联系方式
         */
        private String telephone;
        /**
         * 装货地址+省
         */
        private String province;
        /**
         * 装货地址+市
         */
        private String city;
        /**
         * 装货地址+县
         */
        private String county;
        /**
         * 装货地址+具体
         */
        private String detailAddress;
    }

}
